#ifndef BUTTON_H__
#define BUTTON_H__

#include "Label.h"

#define DEFAULT_BUTTON_TEXT_COLOR_R 0xFF
#define DEFAULT_BUTTON_TEXT_COLOR_G 0xFF
#define DEFAULT_BUTTON_TEXT_COLOR_B 0xFF

#define DEFAULT_BUTTON_BG_COLOR_R 0x00
#define DEFAULT_BUTTON_BG_COLOR_G 0x00
#define DEFAULT_BUTTON_BG_COLOR_B 0x00

#define DEFAULT_BUTTON_FOCUSED_TEXT_COLOR_R 0x00
#define DEFAULT_BUTTON_FOCUSED_TEXT_COLOR_G 0x00
#define DEFAULT_BUTTON_FOCUSED_TEXT_COLOR_B 0x00

#define DEFAULT_BUTTON_FOCUSED_BG_COLOR_R 0xFF
#define DEFAULT_BUTTON_FOCUSED_BG_COLOR_G 0xFF
#define DEFAULT_BUTTON_FOCUSED_BG_COLOR_B 0xFF

/**
 * Clase que representa un boton
 */
class Button :	public Label{

public:

	Button(const char* text):Label(text){}

	bool isFocusable();

	void keyDown(const SDL_Event& event);

	void mouseIn(const SDL_Event& event);

	void mouseOut(const SDL_Event& event);

	void focus(const SDL_Event& event);

	void lostFocus(const SDL_Event& event);

	virtual ~Button(void);
};

#endif;